<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    1.this的关键字
    函数的内部的this只和函数调用的方式有关系,和定义的没有关系
    函数的内部的this指向谁,谁调用就指向谁

    2.call.apply.bind
    call: 函数名.call(要改变的this指向,要给函数传递的参数11,,,)
    apply: 函数名.apply(要改变的this指向,[要给函数传递的参数11,,,])
    bind: (函数名.bind)(参数1,参数2)

    3.es6
    
    1.let和const
    不允许重复声明变量
    不会做预解析
    let和const在块级作用域里面被限制了
    let不具备变量提升
    暂时性死区TDZ

    2.函数传递参数可以设置默认值
    function fn(a=10) => a+b

    3.箭头函数
    es6是函数的简写方式
    声明式的函数不能简写,赋值式函数可以简写
    let fn=name=name
    let fn=(x,y)=>(x+y)
    let fn=(X,Y,Z)=>{....}

    箭头函数的this,this来自于执行上下文的this
    没有arguments

    4.解构赋值
    let obj={
        name:'aa',
        age:100,
        gender:"男"
    }
    let {name,age,gender}=obj
    console.log(name);

    let arr=["aa","bb","cc"];
    let [x,y,z]=arr;

    5.rest参数 ...b
    let arr=["aa","bb","cc"];
    console.log(...arr);


</body>
</html>